1. Field of the Invention
The invention relates generally to the field of computer systems and, more specifically, to a copying technique where data at a primary storage system is backed up to a secondary storage system.
2. Description of the Related Art
Computer storage systems such as storage servers commonly employ remote backup techniques where secondary storage system such as a server constantly maintains a second copy of data on a primary storage system such as a server. The secondary storage system is typically located remotely from the primary storage system and receives data from the primary storage system via a high-speed link such as an optical fiber link. In other cases, data is backed up between storage systems within the same storage server. Moreover, the data transfers to the secondary storage system may include single-track transfers, where tracks are sent individually, and multi-track transfers, where multiple tracks are broken up into a number of related single-track transfers. The tracks are units of storage on a storage medium such as a disk. For example, the tracks may be rings of disks on which data is stored. Each track can be formatted to contain a number of data records that are sequentially numbered starting with zero. Other types of data transfers are also possible.
With remote copying, such as peer-to-peer remote copying (PPRC) over fibre, there is a design point that tasks in a multi-track transfer must be committed in order, e.g., to accommodate file systems and some applications. There are many applications that can't tolerate holes in their data (e.g., if tracks 1,3,5 were committed but 2,4 were not, then tracks 2 and 4 would contain stale data, and we would have an intermix of good data with stale data). The commit process generally involves storing the received data in non-volatile storage at the secondary storage system, and sending a corresponding confirmation message to the primary storage system. A task refers to one or more sequences of instructions treated by a control program as an element of work to be accomplished by a computer. With remote copying, a task involves sending data from the primary storage system to the secondary storage system, along with commands for storing the data at the secondary storage system. If any of the tasks in a transfer fails, all subsequent tasks in the transfer will also fail. Moreover, even though the transfers are serialized as they are sent, the failure status for the transfers may come back to the primary storage system in any order.
Accordingly, there is a need for a copying technique for retrying failed tasks in order, while also dealing with new transfer requests and additional failures.